Adaptive resource allocation for media streams over wireless

ABSTRACT

A method is provided in a wireless access point in a wireless communications network. The method includes obtaining information characterizing a first wireless stream and the second wireless stream transmitted or received by the wireless access point. The information includes at least a wireless channel quality for each of the first wireless stream and the second wireless stream. The method further includes allocating transmission resources to the first wireless stream and the second wireless stream based on the obtained information. In response to a change in quality of the first wireless stream, the method further includes revising the allocation of transmission resources for the first wireless stream based on at least one of a target bit-rate and a target level of smoothness.

PRIORITY

This application is a continuation, under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 16/555,501 filed on Aug. 29, 2019 entitled“ADAPTIVE RESOURCE ALLOCATION FOR MEDIA STREAMS OVER WIRELESS”, which ishereby incorporated by reference in its entirety.

TECHNICAL FIELD

Certain embodiments of the present disclosure relate, in general, towireless communications systems, and, in particular, to media streamsover wireless networks.

BACKGROUND

Media streams, e.g., audio or video streams such as Netflix overHTTP-based adaptive streaming, WebEx conference calls, or streaming ofaugmented/virtual reality content are increasingly handled over wirelessnetworks. Accordingly, wireless networks must manage the allocation ofresources to the media streams while also balancing the resourcesallocated to other transmissions over the wireless network. In somesituations, the capacity of the wireless channel over which the mediastream is transmitted may change over time, e.g., due to movement in theenvironment (e.g., a person walking by blocking the main path ofreception) and/or due to the movement of the streaming device (e.g., auser moving within a shopping mall using an alternative realityapplication to gather additional information regarding merchandise).

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the disclosed embodiments and theirfeatures and advantages, reference is now made to the followingdescription, taken in conjunction with the accompanying drawings, inwhich:

FIG. 1 is a graph of the quality of a media stream over time, inaccordance with certain embodiments;

FIG. 2 illustrates an example network with a wireless access pointserving at least two media streams to wireless devices, in accordancewith certain embodiments;

FIG. 3 illustrates a first configuration of a wireless access point,such as the wireless access point in FIG. 2 , in accordance with certainembodiments;

FIG. 4 illustrates a graphical representation of a dynamic resource unitallocation for a media stream, in accordance with certain embodiments;

FIG. 5 includes graphs of the observed channel quality and the preferreddata streaming rate with dynamic adjustment over the same time periodfor two media streams, in accordance with certain embodiments;

FIG. 6 illustrates a second configuration of a wireless access point,such as the wireless access point in FIG. 2 , in accordance with certainembodiments; and

FIG. 7 is a flowchart diagram of an example method in a wireless accesspoint, in accordance with certain embodiments.

DESCRIPTION OF EXAMPLE EMBODIMENTS Overview

According to an embodiment, a method is provided in a wireless accesspoint in a wireless communications network. The method includesobtaining information characterizing a first wireless stream and thesecond wireless stream transmitted to or from the wireless access point.The information includes at least a wireless channel quality for each ofthe first wireless stream and the second wireless stream. The methodfurther includes allocating transmission resources to the first wirelessstream and the second wireless stream based on the obtained information.In response to a change in quality of the first wireless stream, themethod further includes revising the allocation of transmissionresources for the first wireless stream based on at least one of atarget bit-rate and a target level of smoothness.

As described in detail herein, one or more embodiments provided in thisdisclosure may include one or more technical advantages or solutions toexisting technical problems. As one example, certain embodiments improvethe perceived quality of a media stream by smoothing out resourceallocation in the event of a temporary quality drop. In contrast toconventional techniques that result in sudden and persisting drops inbit-rates, certain embodiments may adjust the normal resource allocationto provide short term preservation of media stream quality. Theadjustments may be based on target bit-rates for the media stream and/ortarget levels of smoothness. In another example, certain embodimentsenable higher data-rates to be realized when resources are available. Inparticular, certain embodiments may enable signaling to an applicationof the media stream that additional resources are available for use inthe wireless media stream. In this manner, the application may adjustthe data rate of the stream immediately. Certain embodiments may havenone, some, or all of the above-recited advantages. Other advantages maybe readily apparent to one having skill in the art in light of thepresent disclosure.

EXAMPLE EMBODIMENTS

Embodiments of the present disclosure and its advantages are bestunderstood by referring to FIGS. 1 through 7 of the drawings, likenumerals being used for like and corresponding parts of the variousdrawings. Although certain embodiments may be described in reference toparticular illustrated examples, the disclosure herein is not limited tothe particular illustrated embodiments and/or configurations andincludes any and all variants of the illustrated embodiments and any andall systems, methods, or apparatuses consistent with the teachings ofthis disclosure, as understood by a person having ordinary skill in theart.

The capacity of the wireless channel over which a media stream istransmitted may change over time. As a result, the quality of the mediastream may drop due to scheduling less resources based on the measuredchannel quality and/or adapting the bit-rate for the media stream.Conventional techniques addressing these common drops in channel qualitysuffer from several drawbacks. For example, video compression methodstypically do not work well with fast-changing bit-rates, and therefore,can cause large swings in perceived quality of the video stream.Further, as another example, application-layer bit-rate control schemesare not conventionally designed to handle fast-changing bandwidth andare typically designed to quickly reduce bit-rates in the event of adrop of the bandwidth, but slowly increase bit-rates when bandwidthbecomes more plentiful.

FIG. 1 illustrates an example graph of a video quality over time. It hasbeen well-studied in the literature that fluctuations in the availablebandwidth of a streaming media session tend to hurt end-userquality-of-experience (QoE). This can be attributed to two factors.First, subjective studies have shown that viewers' response to qualityvariation in a streaming video session is more sensitive to thelow-quality region than to the high-quality region. As a result, aviewer experiences a streaming session fluctuating between two qualitylevels as worse compared to a streaming session that remains stable atan intermediate quality level at the same average rate. For example, thegraph provided in FIG. 1 illustrates that the perceived quality level issignificantly lower than the actual average quality level.

Second, conventional congestion control schemes for interactive mediaare conservative in probing for additional bandwidth but quick inreacting to a perceived increase in congestion by drastically loweringthe streaming rate. Accordingly, a transient drop (e.g., 1 second) inwireless channel quality may lead to an immediate reduction in streamingrate and then slow recovery on the order of 10s of seconds, leading tosuboptimal user QoE. Based on these shortcomings, improved apparatusesand methods are desired to smooth out temporary fluctuations in wirelesschannel quality and induce a more stable rate adaptation behavior by thestreaming media application.

Described herein are solutions addressing one or more of the technicalproblems identified above. For example, certain embodiments describeapparatuses, systems, and methods that efficiently control thescheduling of resources for media streams in response to changingchannel conditions. The scheduling of resources may be improved by anaccess point configured to revise the allocation of resources based on atarget bit-rate and target level of smoothness. In particular, a regularallocation may occur based on the instantaneous or short-term channelquality measurements, and then the allocation may be revised tocompensate for temporary channel disruptions of an individual stream.Accordingly, the fairness of resource allocation in the long-term may bepreserved.

For simplicity, FIG. 2 illustrates wireless network 100 with network 105over which data may be provided from one or more applications 120 towireless devices 115 through wireless access point (AP) 110. Inpractice, a wireless network may further include any additional elementssuitable to support communication between wireless devices, accesspoints, and/or applications, or between a wireless device, access point,and/or application and another communication device, such as a landlinetelephone, a service provider, or any other network node or end device.Wireless network 100 may provide communication and other types ofservices to one or more wireless devices to facilitate the wirelessdevices' or access point's access to and/or use of the services providedby, or via, the wireless network.

AP 110 may serve wireless device 115A with a first media stream 125A andwireless device 115B with second media stream 125B. In certainembodiments, AP 110 may serve first media stream 125A and second mediastream 125B concurrently over some period of time.

For example, application 120A may communicate over network 105 datarequested by wireless device 115A and AP 110 may stream that data, e.g.,in media stream 125A to wireless device 115A using wireless resourcesallocated by AP 110. Similarly, application 120B may communicate overnetwork 105 data requested by wireless device 115B and AP 110 may streamthat data, e.g., in media stream 125B to wireless device 115B usingwireless resources allocated by AP 110.

Although illustrated as two wireless devices 115 receiving two mediastreams 125 from two applications 120 via AP 110, any suitableconfiguration with two (or more) media streams 125 from AP 110 arecontemplated herein. For example, there may be only a single wirelessdevice 115 receiving two separate media streams 125 from AP 110. Asanother example, there may be only a single application 120 that issending data for two (or more) media streams 125 to separate wirelessdevices 115 via AP 110. In this manner, AP 110 may provide two or moremedia streams to wireless devices 115 from applications 120.

Wireless network 100 may comprise and/or interface with any type ofcommunication, telecommunication, data, cellular, and/or radio networkor other similar type of system. In some embodiments, wireless network100 may be configured to operate according to specific standards orother types of predefined rules or procedures. Thus, particularembodiments of wireless network 100 may implement communicationstandards, such as Global System for Mobile Communications (GSM),Universal Mobile Telecommunications System (UMTS), Long Term Evolution(LTE), and/or other suitable 2G, 3G, 4G, or 5G standards; wireless localarea network (WLAN) standards, such as the IEEE 802.11 standards; and/orany other appropriate wireless communication standard, such as theWorldwide Interoperability for Microwave Access (WiMax), Bluetooth,Z-Wave and/or ZigBee standards.

Wireless network 100 and/or network 105 may further include one or morebackhaul networks, core networks, IP networks, public switched telephonenetworks (PSTNs), packet data networks, optical networks, wide-areanetworks (WANs), local area networks (LANs), wireless local areanetworks (WLANs), wired networks, wireless networks, metropolitan areanetworks, and other networks to enable communication between devices. Incertain embodiments, wireless network 100 and/or network 105 maycomprise any number of wired or wireless networks, network nodes, basestations, controllers, wireless devices, relay stations, and/or anyother components or systems that may facilitate or participate in thecommunication of data and/or signals whether via wired or wirelessconnections.

As used herein, network node 105 refers to equipment capable,configured, arranged and/or operable to communicate directly orindirectly with a wireless device, wireless access point and/or withother network nodes or equipment in the wireless network to enableand/or provide wireless access to the wireless device and/or to performother functions (e.g., administration) in the wireless network. Forexample, network node 105 may include an access point (APs) (e.g., radioaccess points or WiFi APs), base stations (BSs) (e.g., radio basestations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)).

Base stations may be categorized based on the amount of coverage theyprovide (or, stated differently, their transmit power level) and maythen also be referred to as femto base stations, pico base stations,micro base stations, or macro base stations. A base station may be arelay node or a relay donor node controlling a relay. Network node 105may also include one or more (or all) parts of a distributed radio basestation such as centralized digital units and/or remote radio units(RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remoteradio units may or may not be integrated with an antenna as an antennaintegrated radio. Parts of a distributed radio base station may also bereferred to as nodes in a distributed antenna system (DAS). Yet furtherexamples of network nodes include multi-standard radio (MSR) equipmentsuch as MSR BSs, network controllers such as radio network controllers(RNCs) or base station controllers (BSCs), base transceiver stations(BTSs), transmission points, transmission nodes, multi-cell/multicastcoordination entities (MCEs), core network nodes (e.g., MSCs, MMEs), O&Mnodes, OSS nodes, SON nodes, positioning nodes (e.g., E-SMLCs), and/orMDTs.

As another example, network node 105 may be a virtual network node. Moregenerally, however, network node 105 may represent any suitable device(or group of devices) capable, configured, arranged, and/or operable toenable and/or provide a wireless device with access to wireless network100 or to provide some service to a wireless device, such as wirelessnode 115, that has accessed the wireless network.

As used herein, AP 110 and/or wireless devices 115 may include anydevice capable, configured, arranged and/or operable to communicatewirelessly with network nodes and/or other wireless devices. In certainembodiments, AP 110 and/or wireless devices 115 includes a userequipment (UE) configured to communicate on an LTE or 5G NR network or awireless access point configured to communicate according to one or morewireless standards, such as WiFi.

Communicating wirelessly may involve transmitting and/or receivingwireless signals using electromagnetic waves, radio waves, infraredwaves, and/or other types of signals suitable for conveying informationthrough air. In some embodiments, AP 110 and/or wireless devices 115 maybe configured to transmit and/or receive information without directhuman interaction. For instance, AP 110 and/or wireless devices 115 maybe designed to transmit information to a network on a predeterminedschedule, when triggered by an internal or external event, or inresponse to requests from the network.

Examples of AP 110 and/or wireless devices 115 include, but are notlimited to, a wireless access point, a wireless router, a wirelessrepeater, a smart phone, a mobile phone, a cell phone, a voice over IP(VoIP) phone, a wireless local loop phone, a desktop computer, apersonal digital assistant (PDA), a wireless cameras, a gaming consoleor device, a music storage device, a playback appliance, a wearableterminal device, a wireless endpoint, a mobile station, a tablet, alaptop, a laptop-embedded equipment (LEE), a laptop-mounted equipment(LME), a smart device, a wireless customer-premise equipment (CPE), avehicle-mounted wireless terminal device, etc.

Applications 120 may be any applications configured to provide one ormore streams of data. Applications 120 may be hosted on or implementedin any suitable combination of hardware and/or software, such as on adatabase or server hosting media content. In certain embodiments, one ormore applications 120 may be hosted on a cloud or distributed service.Applications 120 may be any suitable media-serving applications. Forexample, application 120 may be an application that serves video and/oraudio data over wireless network 100 and/or network 105. Application 120may include a music-streaming application for serving music files andstreams over wireless network 100 and/or network 105. As anotherexample, application 120 may include a movie or tv-streaming applicationfor serving video files and streams over wireless network 100 and/ornetwork 105. As yet another example, application 120 may include avideo-conferencing application that serves live video and/or audio toconference participants via wireless devices 115. As another example,application 120 may include a high-definition augmented reality (AR) orvirtual reality (VR) media content stream destined for wireless devices115.

Generally, AP 110 may allocate the resources used for first and secondmedia streams 125A/B. For example, AP 110 may allocate resourcesproportionally to requested data transfers based on a variety offactors, including, but not limited to, the amount of data requested,the channel conditions between AP 110 and each of wireless devices 115,etc. For example, the quality of media streams 125 may be based on theresources allocated and data rate from each of applications 120.

Conventionally, resources may be allocated based on the instantaneous(e.g., over a short time period) measurements of the channel qualitybetween AP 110 and each of wireless devices 115. For example, if thechannel quality suddenly drops by 40%, the resource allocation may dropthe relative allocation to a media stream over that channelproportionally to the channel quality drop. As a result, conventionalallocation techniques may result in harsh “shocks” or drops in thestreaming quality of the media streams. These drops in stream qualityare the type of changes in quality that users perceive readily and causerestarts and restreaming of data in an effort to resolve the perceivedquality issue. Additionally, the sharp drops may be slow to recover,because even if the channel quality recovers shortly after the drop, theapplication, such as application 120, may remain sending data to AP 110for the media stream at the lower data rate until it determines that ahigher data rate can be supported.

According to embodiments disclosed herein, improved access points, suchas AP 110, address the problems with time-variant wireless channelconditions by allocating radio resources to mitigate the effects ofdrops in wireless channel quality on the quality of media streams overwireless networks.

FIG. 3 illustrates a first configuration of a wireless access point (AP)310, in accordance with certain embodiments. In certain embodiments, AP110 described above with respect to FIG. 1 may be configured in a likemanner to AP 310 illustrated in FIG. 3 .

AP 310 may allocate resources in a more efficient or suitable manner toprevent sudden drops in quality of media streams. In certainembodiments, AP 310 receives data from application 120, e.g., overnetwork 105 via transceiver 315. AP 310 may stream the data to wirelessdevice 115 via a media stream, e.g., one of media stream 125, asdescribed above.

When AP 310 receives the data from application 120, it allocates radioresources to provide the media stream. In certain embodiments, AP 310may include a resource allocation 325 that uses at least channel qualityinformation 624 to determine how to allocate the available wirelessresources at AP 310.

For example, AP 310 may allocate resources based on the instantaneous(or short-term) measurements made of the channel quality between AP 310and wireless device 115 and the channel qualities of all other wirelessconnections and streams involving AP 310. For example, if the channelquality 624 indicates that the quality of the wireless channel betweenAP 310 and wireless device 115 carrying the media stream has dropped,then resource allocator 625 may allocate fewer resources, e.g., resourceunits or RUs as used in orthogonal frequency division multiple access(OFDMA) scheduling, to the stream.

Accordingly, resource allocator 325 of AP 310 may provide an initialresource allocation 626. In certain embodiments, resource allocation 626may be an explicit resource allocation allocating how may RUs and thenumber of tones to be used for the RUs to carry the media stream.Alternatively, resource allocation 626 may represent a proportional orintermediate allocation indication that can be used to provision theresources for the wireless transmission(s). For example, in certainembodiments, AP 310 includes resource provisioner 635 that provisionsthe resources for use in the media streams based on resource allocation626 and any other constraints, such as other media streams or standardimplementation considerations.

In certain embodiments, AP 310 further includes a resource adjuster 630that adjusts resource allocation 626 before the resources areprovisioned and used for the media stream to wireless device 115. Forexample, resource adjuster 630 may adjust up or down the relative amountof resources that should be provisioned for a media stream based on thelonger-term characteristics of the wireless channel quality for stream321. In one example, resource adjuster 630 may smooth out temporarydrops in resource allocation to stream 321 that could drastically reducethe quality of stream 321.

For example, resource allocator 325 may reduce the allocation for stream321 to wireless device 115 by 40% based on a relative wireless channelquality drop by a proportional amount. Resource adjuster 330 may thenupwardly revise the resource allocation by a certain percentage orproportion such that the drop in quality is minimal or reducedsignificantly.

In some embodiments, the adjustments by resource adjuster 330 are madeonly on temporary drops in wireless channel quality. For example,resource adjuster 330 may account for the longer-term trends of thewireless channel quality of media stream 321 to wireless device 115 inallowing for some drop in resource allocation. In particular, ifwireless device 115 is in an increasingly noisy or congested location,the wireless channel quality may decrease over a longer period of timethan if a person or bus temporarily blocks a signal path for thewireless signals carrying media stream 321.

In particular, in some embodiments, resource adjuster 330 may reduce thedrop in resource allocation based on a predetermined smoothnessparameter 328 and/or data-rate range 329 for media stream 321. Forexample, smoothness parameter 328 and/or data-rate range 329 may beincorporated into the determination by resource adjuster 330 to adjustresource allocation 626. The parameters may enable resource adjuster 330to incorporate longer-term channel quality trends when considering howto address instantaneous or short-term drops in channel quality toprevent large drops in quality of the media stream 621.

In certain embodiments, smoothness parameter 328 represents a value orrange of values indicating the preferred level of temporal smoothness byapplication 120 and/or wireless device 115. For example, application 120may indicate to AP 310 smoothness parameter 328 or some indicationthereof when application 120 initiates media stream 321 with wirelessdevice 115 through AP 310. In certain embodiments, smoothness parameter328 is obtained by AP 310 from a memory or external location, such as acentral network controller, that includes such parameters defined forcertain pre-registered categories of applications/devices. In anotherembodiment, smoothness parameter 328 is obtained implicitly by trafficmonitoring tools.

Additionally, data-rate range 329 may be a desired bandwidth range,e.g., from a minimum data rate R_min to a maximum data rate R_max, formedia stream 321 served by application 120. As with smoothness parameter328, AP 310 may obtain data-rate range 329 in one of a variety of ways.

For example, AP 310 may obtain data-rate range 329 from application 120,directly or indirectly, from a memory or external location, such as acentral network controller, that includes such parameters defined forcertain pre-registered categories of applications/devices, or implicitlyby traffic monitoring tools. As shown in a particular, non-limitingexample below, resource adjuster 330 of AP 310 may use these parametersin determining how to adjust resource allocation 326 to prevent suddendrops in media stream 321 quality.

According to a set of embodiments, AP 310 obtains both smoothnessparameter 628 (indicated by “A”) and data-rate range 629 (defined by“R_min” and “R_max”). AP 310 may monitor for each media stream, i, itsrecent instantaneous bandwidth (on the order of the timescale of theapplication) used in the previous slot and use that value as thetarget/expected bandwidth R_target_i. As described above, resourceallocator 625 may use channel quality 624 to determine a bandwidthallocation BW_i for the next slot, e.g., resource allocation 626.

In some embodiments, the bandwidth allocation is an allocation ofresource units. AP 310 may then compute the predicted throughput(data-rate) R_i based on the updated channel state information (e.g.,using existing procedures). In this manner, AP 310 may determine a“normal” or conventional bandwidth allocation, BW_i, and an expected andtarget data rates, R_i and R_target_i, which can be used to revise theconventional bandwidth allocation BW_i to obtain a revised bandwidthallocation BW_revised_i.

In certain embodiments, resource adjuster 330 determines a revisedallocation based on smoothness parameter 328, e.g., in this example “A”,and the difference between the expected and target data rates. Forexample, the allocation decision may be revised by “stretching” theoriginal allocation ratio towards the direction of the target rate. Inone particular example, BW_revised_i may be calculated by resourceadjuster 330 using a predetermined formula. For example, the revisionmay be defined by the equation below:BW_revised_i=BW_i+A*(R_target_i−R_i)/(R_max)*BW_total  (1)

BW_total may represent the full bandwidth of the current OFDMAtransmission opportunity (TXOP) and, again, A is a scaling parametertuned by the application preference on how smooth it wants to receivebandwidth.

The example determination of the adjusted bandwidth (or resourceallocation) may result in the following behavior. First, when R_target_iis significantly higher than R_i, e.g., the wireless channel experiencedby stream i encounters a temporary drop, the equation results in ahigher allocation of bandwidth (BW_revised_i>BW_i). Accordingly, theresource adjustment can mitigate drastic drops in bandwidth experienceby the stream. Similarly, when R_target_i is significantly lower thanR_i, e.g., the wireless channel experienced by stream i encounters atemporary but brief improvement, the equation leads to a bandwidthallocation lower than the initial decision (BW_revised_i<BW_i)indicating more gradual change with respect to the expected streamingrate. Secondly, parameter A can be used to tune the level of smoothnessdesired by the application. For example, setting A to 0 results in norevisions in resource allocation.

In certain embodiments, AP 310 iterates through the adjustment processfor each media stream i=1, . . . , N. For example, more than one mediastream may require adjustment based on change in the wireless channelquality. In certain embodiments, AP 310 may obtain channel qualityinformation, smoothness parameters, and data-rate ranges for each mediastream it is serving. In some embodiments, the same information may beused for adjusting multiple resource allocations.

For example, some media streams may be streamed from the sameapplication and/or have the same data-rate range or smoothnessrequirements or preferences. Once completed for each media stream, AP310 may be further configured to renormalize the final RU allocation toensure that different streams preserve their relative bandwidthallocation, and are all accommodated by the upcoming transmissionopportunity. Then, RU assignment may be performed by the access point,e.g., in resource provisioner 335, in preparation of OFDMA-basedtransmission, e.g., via transceiver 315.

Accordingly, AP 310 may provide media stream 321 to wireless device 115using modified allocation 331. As described above, the resourceadjustment not only incorporates short-term characteristics, e.g., viachannel quality 624, but also longer-term characteristics of thewireless channel quality. In particular, if the target data rateR_target_i is based on the bandwidth used in the previous transmissioninstance, then a constant drop in quality will eventually cause modifiedallocation 331 to reflect the lower channel quality. The rate at whichthis will converge may be based on smoothness parameter 628, e.g., Aused in equation 1 above. In this manner, media stream 321 may notsignificantly drop in quality for temporary channel quality drops. As aresult, negative impacts on the perception of media stream 321 may bemitigated, thereby reducing resources required to restart media stream321.

In certain embodiments, the above-described embodiments may becompatible and complementary to existing OFDMA scheduling schemes. Inparticular, the adjustment by resource adjuster 330 may add a step ofrevision after normal operations of RU allocation. For example, resourceadjuster 330 may be implemented in existing scheduler in an access pointor implemented separately at an access point to modify the resourceallocation before the assignment of resource units. In certainembodiments, the resource revision may be different for different mediastreams. For example, certain types of media streams and/or applicationsmay have a different tradeoff between the agility of adaption andtemporal smoothness of rate.

One advantage of certain embodiments described herein is that nomodification may be required on the application-side, e.g., byapplication 120. Thus, existing applications may benefit from theimproved access points described herein.

In certain embodiments, if explicit messaging mechanisms exist, AP 310may be further configured to inform the recommended media rate to themedia stream sources, e.g., application 120. In response, application120 may adapt the data-rate of information for the media stream sent toAP 310 based on the indication of the revised media rate. As a result,application 120 may adjust the data-rate more quickly, e.g., when thechannel quality significantly improves after a period of low quality.

Although AP 310 is described above in reference to resource units andwireless networks, such as Wi-Fi, using OFDMA scheduling, the techniquesand solutions described herein may also apply to other systems based onOFDMA scheduling, such as in LTE or 5G NR systems, where thetransmission resources are referred to as “resource blocks” instead of“resource units”.

In certain embodiments, other resource allocation mechanisms at awireless access point, such as prioritized scheduling, can also adoptthe techniques described in reference to resource adjuster 330 of AP310. As one example, the wireless access point may determine therelative ratio of air time spent in serving each stream using fulltransmission bandwidth as the resource allocation mechanism. Inparticular, the resource allocation may correspond to air timeallocation via prioritized scheduling (e.g., the sharing of resourcesover time as opposed to bandwidth).

Certain embodiments described herein may adapt resource allocation formedia streams in the event of new or terminated media streams. Asdescribed above, one goal of an access point, such as AP 310, is toprovide a consistent throughput and latency for media applicationstreams across the air. When the access point is communicating with aclient via UL/DL OFDMA, the access point can schedule the RU's for theapplication streams so that the throughput/latency remain consistentbased on the current conditions of the air. These conditions can berepresented as the current modulation and coding scheme (MCS) and therecent packet error rate (PER) computed using transmissionacknowledgments.

The RU allocation for a scheduled transmission event of data from amedia stream may account for MCS and PER so that it can maintain aconsistent throughput/latency. Other lower priority data that is not ofthe media type may be delayed to accommodate the scheduled transmission.

In the event of a new media stream, certain embodiments cause theallocation of RUs for the stream given a derived worst case MCS/PER atthe beginning of the stream transmission. This derived worst case can becomputed based on historical observations of traffic behavior that theaccess point has seen in the recent past. At each scheduled transmissionevent, the access point can take the actual MCS/PER at the time of theevent and reduce the RU allocation for the packets of the stream beingtransmitted (DL) or received (UL) appropriately, freeing RU's fortransmission/reception of lower priority data that may be queued.

This approach may be referred to as a “scale down” process. According toother embodiments, an initial optimal RU allocation may be chosen basedon current MC S/PER values at the start of stream transmission theallocation is increased appropriately to achieve the consistentthroughput/latency at each transmission event. This may be referred toas a “scale up” process.

In certain embodiments, AP 310 may need to occasionally adjust down theconsistent throughput (or the consistent latency) of a stream as newmedia streams appear given finite bandwidth limitations of the system.As described herein, this adjustment may be made abruptly since the rateadaption algorithms can adjust rapidly down. For example, in certainembodiments, AP 310 may abstain from applying resource adjustment toresource allocation 326 in such cases. In particular, AP 310 maydetermine that the drop in resource allocation was not due to a drop inchannel quality, but based on the introduction of a new media stream.Accordingly, AP 310 may not attempt to correct for the drop in resourceallocation, because it could impact the establishment of the new stream.As other streams end, AP 310 may adjust the consistentthroughput/latency for its active streams up to provide a better userexperience for the application. This adjustment may be slower to matchthe rate adaption behavior in a suitable manner.

According to certain embodiments, AP 310 may be further configured tosignal application 120 in response to determining an improved wirelesschannel quality associated with the stream 321. For example, if modifiedallocation 331 includes an increase of allocated resources for stream321 served by application 120, AP 310 may indicate to application 120that that additional transmission resources are available for use instream 321. In particular examples, the indication may be an explicitindication of the amount of resources allocated to stream 321 or anotherindication that implicitly signals an increase of resources (e.g.,plainly an indication that resources have been increased or anindication of the amount of the increase). In this manner, AP 310 mayhelp alleviate the lag of bit-rate recovery at application 120. Inparticular, as discussed above, application 120 may be configured toslowly to increase bit-rates after reducing them in response to lowsignal quality/reduction in allocated resources. In certain embodiments,AP 310's indication of an increase of resources may allow application120 to increase the bit-rates more rapidly and/or use a modifiedalgorithm or procedure to increase bit-rates.

FIG. 4 illustrates a graphical representation of a dynamic resource unitallocation for a media stream, in accordance with certain embodiments.FIG. 4 illustrates one example of resource allocation 626 and modifiedallocation 330 as described above in reference to FIG. 3 .

The graph on the left illustrates the situation when the wirelesschannel quality drops drastically. As described above, the access pointmay calculate the expected throughput given the default RU allocationand compare it against the previously obtained throughput of the samemedia stream (identified as in the same traffic identifier queue). Thedefault RU allocation as shown on the top left may be modified tocompensate for drastic drops in the streams available bandwidth by“upgrading” it to a larger portion of the total channel bandwidth, e.g.,as shown in the bottom right.

According to a particular example, the modification of the allocationmay correspond to choosing a RU-52 (a 52-tone resource unit) instead ofRU-26 (a 26-tone resource unit) for the given user during a temporarydip in channel quality, when OFDMA scheduling is used. When the channelquality recovers, the allocation may automatically fall back to theunrevised default RU allocation based on the long-term averagethroughput. As a result, the available bandwidth as experienced by theapplication stays at a moderate level during transients of bad channelcondition.

FIG. 5 includes graphs of the observed channel quality and the preferreddata streaming rate with dynamic adjustment over the same time periodfor two media streams, in accordance with certain embodiments. Asmentioned above, the access point may iterate across multiple mediastreams to adjust each resource allocation. In some embodiments, onlyone media stream may experience a temporary drop in channel quality.

For example, the graph on the right illustrates a first channel qualityfor a first stream and a second channel quality of a second stream overa period of time. The general trend of the first stream is an increasein quality, but also suffers temporary drops in quality in the indicatedtime periods. In contrast, the general trend of the second stream is adecrease in quality but without significant temporary drops in quality.In conventional allocations of resources, the bandwidth allocated to thefirst media stream would be characterized by large drops in bandwidthduring the indicated time periods and little to no change in thebandwidth allocated to the second media stream (outside smalladjustments over the long-term decline of the channel quality).

However, as described herein, an improved access point, e.g., AP 310 asdescribed above, may reduce the large dips in channel quality bysmoothing out the resulting resource allocation. In particular, duringthe transient periods where the channel quality of the first stream isdisrupted, the dynamic RU allocation scheme as described herein ensuresa moderate allocation to the first stream at the expense of moderaterate degradation in the second stream.

For example, the graph on the right of FIG. 5 illustrates the smallerdips in resource allocation (e.g., stream quality) for both the firstand second media streams in an effort to mitigate large drops in thefirst media stream, which may cause serious degradation of the firstmedia stream. In certain embodiments, the balance between the mediastreams may be accomplished during the renormalization process where theresource allocation for each media stream is renormalized after theadjustments.

As a particular example, consider two streams with equal previousbandwidths B. If a first stream channel quality drops to a levelcorresponding to B/2 and the second stream stays the same at B, then thenew total bandwidth is (3/2)B (as opposed to the previous 2B bandwidth).If the resource modification causes both streams to share the drop inbandwidth, each media stream may be allocated resources supporting abandwidth of (3/4)B. In this example, both allocated bandwidths droppedby (1/4)B, even though only one media stream experienced a drop inchannel quality. This may be advantageous in situations where thebandwidth of (3/4)B will support the same bit-rate transmission for thefirst and second media streams, but a lower bandwidth would not. In thatcase, the adjustment may prevent the temporary adoption of a lower-datarate for the first media stream, which may take longer to recover thanthe recovery of the wireless channel quality. Accordingly, thetechniques described herein may be reflected in the resource allocationfor each of the one or more media streams served by the access point,such as AP 310 described above.

Although the examples describe above in reference to FIGS. 4 and 5 referto a resource unit assignment, the assignment and revision of theassignment any other suitable resource is also contemplated herein. Forexample, resources for LTE or NR 5G may also be contemplated herein,e.g., resource blocks (RBs) or any other resource elements assigned andused in such systems.

FIG. 6 illustrates a second configuration of a wireless access point610, according to certain embodiments. In certain embodiments, AP 110and/or AP 310 are configured in a like manner. AP 610 includes one ormore interfaces 611, a memory 612 and a processor 613. AP 610 mayinclude multiple sets of one or more of the illustrated components fordifferent wireless technologies supported by AP 610, such as, forexample, GSM, WCDMA, LTE, NR, WiFi, WiMAX, or Bluetooth wirelesstechnologies, just to mention a few. These wireless technologies may beintegrated into the same or different chips or set of chips as othercomponents within AP 610.

Interfaces 611 may include one or more antennas or antenna arrays,configured to send and/or receive wireless signals. In certainalternative embodiments, interfaces 611 may not include an antenna, butmay include an interface for interfacing with an external antennaconnectable to AP 610 through one of interfaces 611. Interfaces 611and/or processor 613 may be configured to perform any receiving ortransmitting operations described herein as being performed by AP 610,respectively. Any information, data and/or signals may be received froma network node and/or another wireless node.

In certain embodiments, interfaces 611 includes one or more of radiofront end circuitry and an antenna. For example, interfaces 611 mayinclude one or more filters or amplifiers that is connected totransmission components. In some embodiments, interfaces 611 areconfigured to or receive analog or digital data that is sent out toother nodes or terminal devices via a wireless connection. In someembodiments, interfaces 611 may include circuitry configured to convertdata from digital to analog and vice versa. Signals and data receivedmay be passed to processor 613, respectively. Accordingly, interfaces611 may include any suitable interfacing components for receiving and/ortransmitting wireless communications.

In certain embodiments, interfaces 611 may also include one or moreinterfaces for communicating between different components of AP 610,including any components described in FIG. 2 of AP 110 or in FIG. 3 ofAP 310, such as transceiver 315, resource allocator 625, resourceadjuster 330, and resource provisioner 635.

Processor 613 may include be any electronic circuitry, including, butnot limited to microprocessors, application specific integrated circuits(ASIC), application specific instruction set processor (ASIP), and/orstate machines, that communicatively couples to memory 612 respectively,and controls the operation of AP 610. Processor 613 may be 8-bit,16-bit, 32-bit, 64-bit or of any other suitable architecture. Processor613 may include an arithmetic logic unit (ALU) for performing arithmeticand logic operations, processor registers that supply operands to theALU and store the results of ALU operations, and a control unit thatfetches instructions from memory and executes them by directing thecoordinated operations of the ALU, registers and other components.Processor 613 may include other hardware and software that operates tocontrol and process information.

Processor 613 executes software stored on memory 612, to perform any ofthe functions described herein. For example, processor 613 may controlthe operation and administration of AP 610 by processing informationreceived from memory 612, or any external databases, or any othercomponents of the wireless network in which it is deployed. In certainembodiments, processor 613 may be configured to carry out one or morefunctions of AP 110 and/or AP 310, or any components thereof, such astransceiver 315, resource allocator 625, resource adjuster 330, andresource provisioner 635.

Processor 613 may be a programmable logic device, a microcontroller, amicroprocessor, any suitable processing device, or any suitablecombination of the preceding. Processor 613 is not limited to a singleprocessing device and may encompass multiple processing devices. Incertain embodiments, processor 613 includes one or more of wirelesstransceiver circuitry, wireless signal processing circuitry, andapplication processing circuitry. In other embodiments, the processor613 may include different components and/or different combinations ofcomponents. In certain embodiments processor 613 includes a system on achip. In some embodiments, processor 613 or components thereof may be ona single chip, separate chips, or a set of chips.

Memory 612 may store, either permanently or temporarily, data,operational software, or other information for processor 613. In certainembodiments, memory 612 may store information such as channel quality324, smoothness parameter 628, data-rate range 629, resource allocation626, modified allocation 631, and any other information used indynamically allocating resources, at AP 110 and/or AP 310. Memory 612may include any one or a combination of volatile or non-volatile localor remote devices suitable for storing information.

For example, memory 612 may include random access memory (RAM), readonly memory (ROM), magnetic storage devices, optical storage devices, orany other suitable information storage device or a combination of thesedevices. The software represents any suitable set of instructions,logic, or code embodied in a computer-readable storage medium. Forexample, the software may be embodied in memory 612, a disk, a CD, or aflash drive. Memory 612 may be operable to store a computer program,software, an application including one or more of logic, rules, code,tables, etc. and/or other instructions capable of being executed byprocessor 613. In particular embodiments, the software may include anapplication executable by processor 613 to perform one or more of thefunctions described herein. In certain embodiments, memory 612 may be orimplemented as a NoSQL database. In some embodiments, processor 613 andmemory 612 may be considered to be integrated.

In certain embodiments, some or all of the functionality describedherein as being performed by AP 610 (and AP 110 or AP 310) may beprovided by processor 613, respectively, executing instructions storedon memory 612, respectively, which in certain embodiments may be acomputer-readable storage medium. In alternative embodiments, some orall of the functionality may be provided by processor 613 withoutexecuting instructions stored on a separate or discrete device readablestorage medium, such as in a hard-wired manner. In any of thoseparticular embodiments, whether executing instructions stored on adevice readable storage medium or not, processor 613 can be configuredto perform the described functionality.

Processor 613 may be configured to perform any determining, calculating,or similar operations (e.g., certain obtaining operations) describedherein as being performed by AP 610 (and AP 110 and/or AP 310). Theseoperations, as performed by processor 613, may include processinginformation obtained by processor 613 by, for example, converting theobtained information into other information, comparing the obtainedinformation or converted information to information stored by AP 610(and AP 110 and/or AP 310), and/or performing one or more operationsbased on the obtained information or converted information, and as aresult of said processing making a determination.

In particular embodiments, one or more functions described hereinrelating to AP 610 (and AP 110 and/or AP 310) may be implemented usingone or more interfaces 611, memory 612, and processor 613, theirequivalents, or any suitable combination of hardware and software asunderstood by persons having skill in the art capable of carrying outone or more functions or methods described herein.

FIG. 7 is a flowchart diagram of an example method 700 in a wirelessaccess point, such as AP 110, AP 310, and/or AP 610, in accordance withcertain embodiments. At step 710, characteristics of a first wirelessstream and a second wireless stream are obtained. For example, an accesspoint may measure or obtain the wireless channel qualities for each of afirst media stream and a second media stream that is served by theaccess point. The media stream characteristics may be used by the accesspoint to determine what resources to provision for transmissions carryinformation on the next transmission opportunity, e.g., to one or morewireless devices, such as wireless devices 115.

At step 720, resources may be allocated for the first wireless streamand the second wireless stream based on the obtained information. Forexample, the instantaneous or short-term channel quality information maybe used to determine the relative resource allocation between at leastthe first and second wireless streams. For example, in certainembodiments, the channel quality may temporarily drop, e.g., in responseto a mobile object being positioned in the signal path or a source ofinterfering signals is operating nearby, for one or more of the wirelessstreams. Accordingly, that stream may be allocated fewer resources,which may cause the quality of that stream to suffer, sometimessignificantly.

At step 730, in response to a drop in quality of the first wirelessstream, the allocation of resources may be revised for the firstwireless stream based on a target bit-rate and a target level ofsmoothness. For example, AP 310 may revise resource allocation 326 toobtain modified allocation 331, as described herein, in accordance withcertain embodiments. In some embodiments, method 700 may further includea step of obtaining one or more of the target bit rate and target levelof smoothness. For example, one or more of these values may be obtainedfrom a source of the media stream, directly or indirectly, implicitlybased on the type of media stream of each of the first and secondwireless streams, and/or based on predetermined or default valuesassociated with the type of the wireless streams or applications servingthe data to be transferred in the wireless streams. In this manner, thepotential drop in quality of the first wireless stream may be mitigatedwhen there is a drop in wireless channel quality.

In some embodiments, the revision of resources only occurs when the dropin channel quality of the first wireless stream exceeds a thresholdamount (or percentage). For example, small drops of 1-5% may not berequired to be mitigated or are within normal fluctuations. In thismanner, unnecessary processing to determined revised allocations may beavoided when such revisions would have little to no impact.

In certain embodiments, the revision in step 730 may be repeated foreach wireless stream, e.g., for both the first wireless stream and thesecond wireless stream served by the wireless access point. In thismanner, a revised allocation may be obtained for each wireless streamthat is served by the access point.

According to certain embodiments, method 700 includes the additionalstep 740, in which the allocation of transmission resources isrenormalized after the revision in step 730. For example, the revisionof the allocation of resources may increase the allocation of resourcesto the first wireless stream without revising the allocation to thesecond wireless stream. Since there is a finite amount of wirelessresources, the overall allocation may be renormalized to ensure that therevised allocations correspond to the available network resources. As aparticular example, if the initial allocation of transmission ofresources, e.g., in step 720, provides 50% of available resources toboth the first and second wireless streams and the allocation to thefirst wireless stream is increased by 20% (e.g., now 60% of the overallamount of resources), then the total allocation of resources is50%+60%=110%. This can be renormalized such that the total allocation is100% with approximately 54.54% allocated to the first wireless streamand 45.46% allocated to the second wireless stream. In this manner, theamount of resources allocated does not exceed the capacity of thewireless access point, but is instead renormalized after the revision ofthe allocation based on the detected change in wireless quality.

Modifications, additions, or omissions may be made to method 700depicted in FIG. 7 . Method 700 may include more, fewer, or other steps.For example, in certain embodiments, method 700 may further includedetermining whether the drop in quality of the first wireless stream isbased on the introduction of a third wireless stream abstaining fromrevising the allocation of resources if based on the introduction of anew stream. In this manner, quick adjustments in the media streamquality are allowed to allow the new stream to become established. Inanother set of embodiments, method 700 further includes revising theallocation of resources for the second wireless stream based on a secondtarget bit-rate and a second target level of smoothness. For example,there may be concurrent drops in wireless quality for multiple streamsserved by the access point. In this manner, the wireless access pointmay adjust each resource allocation, e.g., a proportional resourceallocation, which can be renormalized before the resources are assigned.

Additionally, steps may be performed in parallel or in any suitableorder. While discussed as AP 310 as performing certain steps, anysuitable component of AP 310, AP 110, and/or AP 610 may perform one ormore steps of the methods. Additionally, method 700 may include anysuitable step to carry out any of the described functions of second AP310, AP 110, and/or AP 610. Further, any of steps of method 700 maycomputerized and/or carried out using hardware, such as processor 613 ofAP 6100, or any other suitable system implementing one or morecomponents of AP 310, AP 110, and/or AP 610, such as any hardware orsoftware implementing resource allocator 325, resource adjuster 330,resource provisioner 335, or transceiver 315.

In addition, techniques, systems, subsystems, and methods described andillustrated in the various embodiments as discrete or separate may becombined or integrated with other systems, modules, techniques, ormethods without departing from the scope of the present disclosure.Other items shown or described as coupled or directly coupled orcommunicating with each other may be indirectly coupled or communicatingthrough some interface, device, or intermediate component whetherelectrically, mechanically, or otherwise. Other examples of changes,substitutions, and alterations are ascertainable by one skilled in theart and could be made without departing from the spirit and scopedisclosed herein.

The invention claimed is:
 1. An apparatus comprising one or moreprocessors and a memory storing instructions that, when executed by theone or more processors, cause the one or more processors to performoperations comprising: obtaining information characterizing a firstwireless stream and a second wireless stream, wherein the informationcomprises at least a wireless channel quality for each of the firstwireless stream and the second wireless stream; allocating transmissionresources to the first wireless stream and the second wireless streambased on the information; revising, in response to a change in thewireless channel quality of the first wireless stream, an allocation ofthe transmission resources for the first wireless stream; andcommunicating a signal to a media streaming application that provides atleast the first wireless stream in response to determining an improvedwireless channel quality associated with the first wireless stream,wherein the signal indicates to the media streaming application thatadditional transmission resources are available for use in the firstwireless stream.
 2. The apparatus of claim 1, wherein revising theallocation of the transmission resources comprises increasing anallocation ratio for the first wireless stream.
 3. The apparatus ofclaim 1, the operations further comprising revising, in response to achange in the wireless channel quality of the second wireless stream, anallocation of the transmission resources for the second wireless stream.4. The apparatus of claim 1, the operations further comprisingrenormalizing an allocation of the transmission resources for the firstwireless stream and the second wireless stream based on a revisedallocation of the transmission resources of at least the first wirelessstream.
 5. The apparatus of claim 1, the operations further comprising:using orthogonal frequency division multiple access (OFDMA) schedulingin allocating the transmission resources to the first wireless streamand the second wireless stream; and revising the allocation of thetransmission resources for the first wireless stream by changing abandwidth of one or more transmission resources allocated to the firstwireless stream.
 6. The apparatus of claim 1, the operations furthercomprising adjusting, in response to a termination of the secondwireless stream, a target bit-rate of the first wireless stream, whereinthe allocation of the transmission resources for the first wirelessstream is revised based on an adjusted target bit-rate.
 7. The apparatusof claim 1, the operations further comprising: using prioritizedscheduling in allocating the transmission resources to the firstwireless stream and the second wireless stream; and revising theallocation of the transmission resources for the first wireless streamby changing an air time allocation of the transmission resourcesallocated to the first wireless stream.
 8. A method, comprising:obtaining information characterizing a first wireless stream and asecond wireless stream, wherein the information comprises at least awireless channel quality for each of the first wireless stream and thesecond wireless stream; allocating transmission resources to the firstwireless stream and the second wireless stream based on the information;revising, in response to a change in the wireless channel quality of thefirst wireless stream, an allocation of the transmission resources forthe first wireless stream; and communicating a signal to a mediastreaming application that provides at least the first wireless streamin response to determining an improved wireless channel qualityassociated with the first wireless stream, wherein the signal indicatesto the media streaming application that additional transmissionresources are available for use in the first wireless stream.
 9. Themethod of claim 8, wherein revising the allocation of the transmissionresources comprises increasing an allocation ratio for the firstwireless stream.
 10. The method of claim 8, further comprising revising,in response to a change in the wireless channel quality of the secondwireless stream, an allocation of the transmission resources for thesecond wireless stream.
 11. The method of claim 8, further comprisingrenormalizing an allocation of the transmission resources for the firstwireless stream and the second wireless stream based on a revisedallocation of the transmission resources of at least the first wirelessstream.
 12. The method of claim 8, further comprising: using orthogonalfrequency division multiple access (OFDMA) scheduling in allocating thetransmission resources to the first wireless stream and the secondwireless stream; and revising the allocation of the transmissionresources for the first wireless stream by changing a bandwidth of oneor more transmission resources allocated to the first wireless stream.13. The method of claim 8, further comprising adjusting, in response toa termination of the second wireless stream, a target bit-rate of thefirst wireless stream, wherein the allocation of the transmissionresources for the first wireless stream is revised based on an adjustedtarget bit-rate.
 14. The method of claim 8, further comprising: usingprioritized scheduling in allocating the transmission resources to thefirst wireless stream and the second wireless stream; and revising theallocation of the transmission resources for the first wireless streamby changing an air time allocation of the transmission resourcesallocated to the first wireless stream.
 15. One or more non-transitorycomputer-readable storage media embodying instructions that, whenexecuted by a processor, cause the processor to perform operationscomprising: obtaining information characterizing a first wireless streamand a second wireless stream, wherein the information comprises at leasta wireless channel quality for each of the first wireless stream and thesecond wireless stream; allocating transmission resources to the firstwireless stream and the second wireless stream based on the information;revising, in response to a change in the wireless channel quality of thefirst wireless stream, an allocation of the transmission resources forthe first wireless stream; and communicating a signal to a mediastreaming application that provides at least the first wireless streamin response to determining an improved wireless channel qualityassociated with the first wireless stream, wherein the signal indicatesto the media streaming application that additional transmissionresources are available for use in the first wireless stream.
 16. Theone or more non-transitory computer-readable storage claim 15, whereinrevising the allocation of the transmission resources comprisesincreasing an allocation ratio for the first wireless stream.
 17. Theone or more non-transitory computer-readable storage claim 15, theoperations further comprising revising, in response to a change in thewireless channel quality of the second wireless stream, an allocation ofthe transmission resources for the second wireless stream.
 18. The oneor more non-transitory computer-readable storage claim 15, theoperations further comprising renormalizing an allocation of thetransmission resources for the first wireless stream and the secondwireless stream based on a revised allocation of the transmissionresources of at least the first wireless stream.
 19. The one or morenon-transitory computer-readable storage claim 15, the operationsfurther comprising: using orthogonal frequency division multiple access(OFDMA) scheduling in allocating the transmission resources to the firstwireless stream and the second wireless stream; and revising theallocation of the transmission resources for the first wireless streamby changing a bandwidth of one or more transmission resources allocatedto the first wireless stream.
 20. The one or more non-transitorycomputer-readable storage claim 15, the operations further comprisingadjusting, in response to a termination of the second wireless stream, atarget bit-rate of the first wireless stream, wherein the allocation ofthe transmission resources for the first wireless stream is revisedbased on an adjusted target bit-rate.